Level 0/1 Prover: A Tutorial

نویسنده

  • Alwen Tiu
چکیده

This paper gives an overview of a prototype implementation of a fragment of the logic Linc [5, 8, 13] (also referred to as FOλ∆∇ in [5]), which we tentatively call ‘Level 0/1 Prover’ here. This implementation is part of a larger project, Parsifal, at INRIA Futurs (see http://www.lix.polytechnique.fr/~dale/parsifal). The logic Linc is an extension of first-order intuitionistic logic with a proof-theoretic notion of definitions [3, 11, 2, 4], proof rules for induction and co-induction and a new quantifier ∇. Our aim is to use Linc as a logic for specifying and reasoning about various operational semantics of computation systems. It is not necessary to go through the detailed description of the logic in order to use the prover; this is the intent of this tutorial, of course. For those who are interested, details of the logic are available in the related papers on Linc mentioned previously. We assume that users are familiar with Prolog, or better, λProlog, as we follow closely the syntax of both languages, especially λProlog. The current implementation is very much experimental so we choose to restrict the features of the language to purely logical ones, that is, most non-logical features commonly found in Prolog-like languages, e.g., arithmetic, string processing, I/O, etc., are not implemented. This tutorial is organized as follows. Section 2 gives an overview of the language of the prover and its operational semantics (informally), along with some examples illustrating its differences with λProlog. Section 3 shows how to configure and run the prover. Section 4 discusses the treatment of eigenvariables in Level 0/1 prover, and shows how it is different from the use of eigenvariables in λProlog. This section also shows how to give a logically sound interpretation to certain non-logical features in Prolog or λProlog. Section 5 discusses a non-logical feature of Level 0/1 prover which allows users to perform analysis on a logic program. What it does is basically transforming a logic program into a certain abstract syntax, called λ-tree syntax, and vice versa. Section 6 shows how to use this feature to do type checking on logic programs. The type checking program itself would be just another logic program that is fed the λ-tree syntax of another program. Section 7 and Section 8 illustrate the use of Level 0/1 prover to reason about transition systems. The examples cover the specification and verification of Peterson’s algorithm (for guaranteeing mutual exclusion), and bisimulation of π-calculus. Section 9 mentions some possible directions for future work.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Tutorial on Design Verification with Synchronized Transitions

This tutorial describes a mechanized technique for design veriication. The aim is, in the early design phases, to verify selected key properties of a partially speciied design. A supporting design language called Synchronized Transitions is used for describing designs. The design veriication is mechanized by tools, in particular, a theorem prover called the Larch Prover (lp) used for reasoning ...

متن کامل

An ACL2 Tutorial

We describe a tutorial that demonstrates the use of the ACL2 theorem prover. We have three goals: to enable a motivated reader to start on a path towards effective use of ACL2; to provide ideas for other interactive theorem prover projects; and to elicit feedback on how we might incorporate features of other proof tools into ACL2.

متن کامل

Proof Principles of CSP – CSP-Prover in Practice

The process algebra Csp provides a well-established formalism for the modelling, analysis, and verification of concurrent systems. Besides being a specification language, Csp provides a valuable set of proof principles. We show in tutorial style, how these proof principles are made available in our tool Csp-Prover. Overall, Csp-Prover turns out to be an off-the-shelf proof tool ready for use in...

متن کامل

A Tutorial on Using PVS for Hardware Verification

PVS stands for \Prototype Veriication System." It consists of a speciication language integrated with support tools and a theorem prover. PVS tries to provide the mechanization needed to apply formal methods both rigorously and productively. This tutorial serves to introduce PVS and its use in the context of hardware veriication. In the rst section, we brieey sketch the purposes for which PVS i...

متن کامل

The Verification of a Bit-slice ALU

The verification of a bit-slice ALU has been accomplished using a mechanical theorem prover. This ALU has an n-bit design specification, which has been verified to implement its top-level specification. The ALU and top-level specifications were written in the Boyer-Moore logic. The verification was carried out with the aid of Boyer-Moore theorem prover in a hierarchical fashion.

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2004